package cn.koala.key.stock.service;

import cn.koala.key.entity.KeyInfo;
import cn.koala.key.stock.domain.vo.EnterStockDetailVO;
import cn.koala.key.stock.domain.vo.NewCarKeyInfoExcel;
import cn.seed.common.core.Result;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @description:EnterStockNewCarService
 * @author 32415
 * @time 2019/04/28
 **/
public interface EnterStockNewCarService {

    /**
     * 批量导入新车
     * @description importNewCar
     * @param newCarFile
     * @return cn.seed.common.core.Result
     * @Exception
     * @author shuai.xu
     * @time 2019/5/20 13:55
    */
    Result importNewCar(MultipartFile newCarFile);

    /**
     * 提交
     * @description submit
     * @param orderNo
     * @return cn.seed.common.core.Result
     * @Exception
     * @author shuai.xu
     * @time 2019/6/3 10:46
    */
    Result submit(String orderNo);

    /**
     * 作废
     * @description invalid
     * @param orderNo
     * @return cn.seed.common.core.Result
     * @Exception
     * @author shuai.xu
     * @time 2019/6/3 10:46
    */
    Result invalid(String orderNo);

    /**
     * 删除钥匙库存
     * @description delete
     * @param keyBarCode
     * @return cn.seed.common.core.Result
     * @Exception
     * @author shuai.xu
     * @time 2019/6/3 10:47
    */
    Result delete(String keyBarCode);

    /**
     * 新车入库详情
     * @description selectNewCarDetail
     * @param orderNo
     * @return cn.seed.common.core.Result<cn.koala.key.stock.domain.vo.EnterStockDetailVO>
     * @Exception
     * @author shuai.xu
     * @time 2019/6/3 11:06
    */
    Result<EnterStockDetailVO> selectNewCarDetail(String orderNo);

    /**
     * 根据单号获取钥匙信息
     * @description selectNewCarKeyInfo
     * @param orderNo
     * @return cn.seed.common.core.Result<java.util.List<cn.koala.key.entity.KeyInfo>>
     * @Exception
     * @author shuai.xu
     * @time 2019/6/3 17:08
    */
    Result<List<KeyInfo>> selectNewCarKeyInfo(String orderNo);

    /**
     * 数据转换
     * @description dataProcessing
     * @param data
     * @return java.util.List<cn.koala.key.stock.domain.vo.NewCarKeyInfoExcel>
     * @Exception
     * @author shuai.xu
     * @time 2019/6/10 15:56
    */
    List<NewCarKeyInfoExcel> dataProcessing(List<KeyInfo> data);
}
